static void gtk_text_delete_text (GtkText *self,
int start_pos,
int end_pos);
+static void gtk_text_delete_selection (GtkText *self);
static void gtk_text_set_selection_bounds (GtkText *self,
int start,
int end);
gtk_widget_queue_resize (GTK_WIDGET (self));
}
+static void
+gtk_text_delete_selection (GtkText *self)
+{
+ GtkTextPrivate *priv = gtk_text_get_instance_private (self);
+
+ int start_pos = MIN (priv->selection_bound, priv->current_pos);
+ int end_pos = MAX (priv->selection_bound, priv->current_pos);
+
+ gtk_text_delete_text (self, start_pos, end_pos);
+}
+
static void
gtk_text_set_selection_bounds (GtkText *self,
int start,
if (priv->selection_bound != priv->current_pos)
{
- gtk_text_delete_text (self, priv->selection_bound, priv->current_pos);
+ gtk_text_delete_selection (self);
return;
}
if (priv->selection_bound != priv->current_pos)
{
- gtk_text_delete_text (self, priv->selection_bound, priv->current_pos);
+ gtk_text_delete_selection (self);
return;
}
if (priv->editable)
{
if (priv->selection_bound != priv->current_pos)
- gtk_text_delete_text (self, priv->selection_bound, priv->current_pos);
+ gtk_text_delete_selection (self);
}
else
{
if (priv->editable)
{
if (priv->selection_bound != priv->current_pos)
- gtk_text_delete_text (self, priv->selection_bound, priv->current_pos);
+ gtk_text_delete_selection (self);
}
}
priv->need_im_reset = FALSE;
if (priv->selection_bound != priv->current_pos)
- gtk_text_delete_text (self, priv->selection_bound, priv->current_pos);
+ gtk_text_delete_selection (self);
else
{
if (priv->overwrite_mode)
begin_change (self);
if (priv->selection_bound != priv->current_pos)
- gtk_text_delete_text (self, priv->selection_bound, priv->current_pos);
+ gtk_text_delete_selection (self);
pos = priv->current_pos;
gtk_text_insert_text (self, text, length, &pos);
{
/* Replacing selection */
begin_change (self);
- gtk_text_delete_text (self, priv->selection_bound, priv->current_pos);
- pos = priv->selection_bound;
+ gtk_text_delete_selection (self);
+ pos = MIN (priv->selection_bound, priv->current_pos);
gtk_text_insert_text (self, str, length, &pos);
end_change (self);
}
if (priv->editable &&
priv->selection_bound != priv->current_pos)
- gtk_text_delete_text (self, priv->selection_bound, priv->current_pos);
+ gtk_text_delete_selection (self);
}
/* We display the cursor when